import { NgModule } from '@angular/core'
import { BrowserModule } from '@angular/platform-browser';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { RouterModule } from '@angular/router';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { CommonModule } from '@angular/common';
import { MdlModule } from '@angular-mdl/core';
import { TableModule } from 'primeng/table';
import { ScrollPanelModule } from 'primeng/scrollpanel';
import {
    TreeModule, BreadcrumbModule, ToolbarModule, InputTextModule, DialogModule, RadioButtonModule,
    InputTextareaModule, PanelModule, ButtonModule, AutoCompleteModule, CalendarModule,
    CarouselModule, TabViewModule, PanelMenuModule, SharedModule, ToggleButtonModule,
    ConfirmDialogModule, ConfirmationService, DropdownModule, DragDropModule, TooltipModule,
    CheckboxModule, InputSwitchModule, ColorPickerModule, LightboxModule, DataGridModule
} from 'primeng/primeng';
import { DataViewModule } from 'primeng/dataview';
import { QkSharedModule } from '../common/module/qkshare.module';
import { FreeflowComponent } from './freeflow.component';
import { FfBaseComponent } from './base/ffbase.component';
import { FfProcComponent } from './proc/ffproc.component';
import { FfDefinitionComponent } from './definition/ffdefinition.component';
import { FfActComponent } from './act/ffact.component';
import { FfPartComponent } from './part/ffpart.component';
import { FfTransetComponent } from './transet/fftranset.component'
import { FfActAttrComponent } from './act/ffact-attr.component';
import { FfActFilterComponent } from './act/ffact-filter.component';
import { FfActEventComponent } from './act/ffact-event.component';
import { FfTransetAttrComponent } from './transet/fftranset-attr.component';
import { FfAddBizProcComponent } from './bizproc/ff-addbizproc.component';
import { FreeflowService } from './freeflow.service';

@NgModule({
    imports: [
        FormsModule,
        ReactiveFormsModule,
        CommonModule,
        MdlModule,
        TreeModule,
        BreadcrumbModule,
        ToolbarModule,
        PanelModule,
        ButtonModule,
        AutoCompleteModule,
        InputTextModule,
        InputTextareaModule,
        TabViewModule,
        CarouselModule,
        PanelMenuModule,
        SharedModule,
        ConfirmDialogModule,
        DialogModule,
        CalendarModule,
        DropdownModule,
        DragDropModule,
        TooltipModule,
        CheckboxModule,
        InputSwitchModule,
        ColorPickerModule,
        LightboxModule,
        DataGridModule,
        RadioButtonModule,
        ToggleButtonModule,
        ScrollPanelModule,
        QkSharedModule,
        TableModule,
        DataViewModule
    ],
    declarations: [
        FreeflowComponent,
        FfBaseComponent,
        FfProcComponent,
        FfDefinitionComponent,
        FfActComponent,
        FfPartComponent,
        FfTransetComponent,
        FfActAttrComponent,
        FfActEventComponent,
        FfActFilterComponent,
        FfTransetAttrComponent,
        FfAddBizProcComponent
    ],
    entryComponents: [
        FfActAttrComponent,
        FfActEventComponent,
        FfActFilterComponent,
        FfTransetAttrComponent,
        FfAddBizProcComponent
    ],
    exports: [
        FreeflowComponent,
        FfBaseComponent,
        FfProcComponent,
        FfDefinitionComponent,
        FfActComponent,
        FfPartComponent,
        FfTransetComponent,
        FfActAttrComponent,
        FfActEventComponent,
        FfActFilterComponent,
        FfTransetAttrComponent,
        FfAddBizProcComponent
    ],
    providers: [
        ConfirmationService,
        FreeflowService
    ]
})
export class FreeflowShareModule { }
